package com.heima.mapper;

import com.github.pagehelper.Page;
import com.heima.pojo.Region;
import com.heima.pojo.dto.RegionPageDto;
import com.heima.pojo.vo.RegionVo;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface RegionMapper {
    /**
     * 地区分页查询
     * @param dto
     * @return
     */
    public Page<RegionVo> pageQuery(RegionPageDto dto);

    /**
     * 新增地区
     * @param region
     */
    @Insert("insert into tb_region(name,remark) values(#{name},#{remark})")
    void add(Region region);

    /**
     * 查询地区详情及node数量
     */
    RegionVo queryRegion(String regionId);

    /**
     * 查询所有的region
     */
    @Select("SELECT r.*, count(n.region_id) nodeCount from tb_region r LEFT JOIN tb_node n\n" +
            "on r.id = n.region_id\n" +
            "GROUP BY r.id")
    List<RegionVo> queryAllRegion();

    /**
     * 修改地区
     * @param region
     */
    @Update("update tb_region set name = #{name},remark = #{remark} where id = #{id}")
    void update(Region region);

    /**
     * 删除区域
     * @param regionId
     */
    @Delete("delete from tb_region where id = #{id}")
    void delById(Long regionId);

    @Select("select * from tb_region where id = #{regionId}")
    Region queryById(String regionId);
}
